]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
theme: Pre-generate stylesheets as well
authorFlorian Müllner <fmuellner@gnome.org>
Mon, 28 Dec 2020 23:01:03 +0000 (00:01 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Mon, 28 Dec 2020 23:40:47 +0000 (00:40 +0100)
Since commit 9ef9a5ff8a, man pages are generated at dist time to reduce
build dependencies when building from a released tarball.

Do the same for the stylesheets to also remove the sassc dependency.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1555>

data/meson.build
data/theme/meson.build
meson.build
meson/generate-stylesheets.py [new file with mode: 0644]

index 25a81422f8307a937d637f8b041485e9cd802450..4a1e16d4673b0c8645b6372faaab5d000dee3f80 100644 (file)
@@ -41,6 +41,7 @@ foreach service_file : service_files
   )
 endforeach
 
+theme_deps = []
 
 subdir('dbus-interfaces')
 subdir('icons')
index b0e08128e1007eb8e1a70255a95fa3aa3638149a..87112c358ddddc4441c2e99c2a94e83ceddb48f2 100644 (file)
@@ -42,20 +42,21 @@ theme_sources = files([
   'gnome-shell-sass/widgets/_workspace-thumbnails.scss'
 ])
 
-styles = [
-  'gnome-shell-high-contrast',
-  'gnome-shell'
+stylesheets = [
+  'gnome-shell-high-contrast.css',
+  'gnome-shell.css'
 ]
 
-theme_deps = []
-
-foreach style: styles
-  theme_deps += custom_target('style-' + style,
-                              input: '@0@.scss'.format(style),
-                              output: '@0@.css'.format(style),
-                              command: [
-                                sassc, '-a', '@INPUT@', '@OUTPUT@'
-                              ],
-                              depend_files: theme_sources)
+foreach stylesheet: stylesheets
+  if not fs.exists(stylesheet)
+    sassc = find_program('sassc')
+    theme_deps += custom_target(stylesheet,
+                                input: fs.replace_suffix(stylesheet, '.scss'),
+                                output: stylesheet,
+                                command: [
+                                  sassc, '-a', '@INPUT@', '@OUTPUT@'
+                                ],
+                                depend_files: theme_sources)
+  endif
 endforeach
 
index 4c913ff8634beba44e4ce7cf3d7be081650cc5c6..b08c8dad50ae71a02cb81a06d625ea04e5dd7f10 100644 (file)
@@ -137,7 +137,6 @@ endif
 
 mutter_typelibdir = mutter_dep.get_pkgconfig_variable('typelibdir')
 python = find_program('python3')
-sassc = find_program('sassc')
 gjs = find_program('gjs')
 
 cc = meson.get_compiler('c')
@@ -293,6 +292,7 @@ endif
 
 meson.add_install_script('meson/postinstall.py')
 meson.add_dist_script('meson/generate-manpages.py')
+meson.add_dist_script('meson/generate-stylesheets.py')
 
 summary_options = {
   'networkmanager': get_option('networkmanager'),
diff --git a/meson/generate-stylesheets.py b/meson/generate-stylesheets.py
new file mode 100644 (file)
index 0000000..35242c6
--- /dev/null
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+
+import os
+from pathlib import PurePath
+import subprocess
+
+stylesheets = [
+    'data/theme/gnome-shell-high-contrast.css',
+    'data/theme/gnome-shell.css'
+]
+
+sourceroot = os.environ.get('MESON_SOURCE_ROOT')
+distroot = os.environ.get('MESON_DIST_ROOT')
+
+for stylesheet in stylesheets:
+    stylesheet_path = PurePath(stylesheet)
+    src = PurePath(sourceroot, stylesheet_path.with_suffix('.scss'))
+    dst = PurePath(distroot, stylesheet_path)
+    subprocess.call(['sassc', '-a', src, dst])